package com.xigua.数组;

/**
 * @author LiRongHua
 * @Title: ${file_name}
 * @Package ${package_name}
 * @Description: 图像平滑器 是大小为 3 x 3 的过滤器，用于对图像的每个单元格
 * 平滑处理，平滑处理后单元格的值为该单元格的平均灰度。
 *每个单元格的  平均灰度 定义为：该单元格自身及其周围的 8 个单元格的平均值，
 * 结果需向下取整。（即，需要计算蓝色平滑器中 9 个单元格的平均值）。
如果一个单元格周围存在单元格缺失的情况，则计算平均灰度时不考虑缺失的单元格（即，需要计算红色平滑器中 4 个单元格的平均值）。
 *
 * @date 2022/3/2418:44
 */
public class _661_图片平滑器 {

    public static void main(String[] args) {
        int[][] ans = new int[][]{{100,200,100},{200,50,200},{100,200,100}};
        System.out.println(imageSmoother(ans));
    }

    public static  int[][] imageSmoother(int[][] img) {
        int m = img.length;
        int n = img[0].length;
        int ans[][] = new int[m][n];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                int sum = 0;
                int num = 0;
                for (int k = i-1; k <= i+1; k++) {
                    for (int l = j-1; l <= j+1; l++) {
                        if (k>=0 && k<m && l >= 0&& l<n){
                            sum+=ans[k][l];
                            num++;
                        }
                    }
                }
                ans[i][j] = sum/num;
            }
        }
        return ans;

    }

}
